﻿using System;
using Yanesdk.System; 
using Yanesdk.Input;

namespace ADV_Evaluator.Task {

    /// <summary>
    /// キー入力、タイマーの更新、プログラムの終了処理を行うタスク
    /// </summary>
    class SystemTask : TaskBase {

        /// <summary>
        /// タスク処理
        /// </summary>
        /// <param name="o"></param>
        /// <returns>正常終了なら0。非0ならこのタスクは消される。</returns>
        public override int Task(object o) {

            GameSystem system = (GameSystem)o;

            // タイマーの更新
            system.FixTimer.Update();

            // キーボードとマウス入力の更新
            system.Keyboard.Update();
            system.Mouse.Update();

            // FPSを表示
            system.Form.Text = string.Format("{0}   FPS:{1}   CPU-Power:{2}", system.ProjectData.GameTitle, system.FpsTimer.RealFpsInt, (int)system.FpsTimer.CpuPower);

            // シーンコントローラが終了したら終了
            if (system.SceneController.End) {
                system.TaskController.Terminate();
                system.SceneController.ExitScene();
                return 1;
            }

            // F12キーが押されたら再起動する
            if (system.Keyboard.IsPress(KeyCode.ESCAPE)) {
                system.Restart = true;
                system.TaskController.Terminate();
                system.SceneController.ExitScene();
                return 1;
            }

            return 0;
        }

    }
}

